"""
减少可调用对象的参数个数

问题：
    你有一个被其他python代码使用的callable对象，可能是一个回调函数或者是一个处理器， 但是它的参数太多了，导致调用时出错。
解决方案：
    如果需要减少某个函数的参数个数，你可以使用 functools.partial() 。
    partial() 函数允许你给一个或多个参数设置固定的值，减少接下来被调用时的参数个数。
"""

from functools import partial


def say(what, where, when, who, why, how):
    print(what, where, when, who, why, how)


def use_say():
    say1 = partial(say, "对象")
    say1("场所", "时间和程序", "人员", "为什么", "方式")

    say2 = partial(say, "对象", "场所", how="方式")
    say2("时间和程序", "人员", "为什么")
    # 输出结果：
    """
    对象 场所 时间和程序 人员 为什么 方式
    对象 场所 时间和程序 人员 为什么 方式
    """


if __name__ == '__main__':
    use_say()
